package xyz.xtt.asset.service;

import java.util.Collection;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;

import xyz.xtt.asset.client.response.AssetExtInfoResponse;
import xyz.xtt.asset.entity.TblAssetExt;
import xyz.xtt.asset.request.OperateUpRequest;
import xyz.xtt.asset.vo.PreSellInfoVo;

/**
 * <p>
 * 资产扩展信息表 服务类
 * </p>
 *
 * @author author
 * @since 2024-10-17
 */
public interface ITblAssetExtService extends IService<TblAssetExt> {
	/**
	 * 查询资产扩展信息详情
	 * 
	 * @param assetId
	 * @return
	 */
	TblAssetExt info(Long assetId);

	/**
	 * 批量根据资产id查询资产详情
	 * 
	 * @param assetIds
	 * @return
	 */
	List<TblAssetExt> infoWithAssetIds(Collection<Long> assetIds);

	/**
	 * @return
	 */
	TblAssetExt infoWithAssetIdByCache(Long assetId);

	/**
	 * @param preSellInfoVo
	 * @param assetId
	 * @return
	 */
	boolean putOnc2c(PreSellInfoVo preSellInfoVo, Long assetId);

	boolean updatePutOn(PreSellInfoVo preSellInfoVo, long noticePeriodMinutes, TblAssetExt assetExt, OperateUpRequest operateUpRequest);

	boolean updatePutOff(Long assetId);

	/**
	 * 匹量获取资产扩展信息
	 * 
	 * @param assetIds
	 * @return
	 */
	List<AssetExtInfoResponse> queryBatchAssetExtInfoResponse(Collection<Long> assetIds);

	/**
	 * 获防资产扩展信息
	 * 
	 * @param assetId
	 * @return
	 */
	AssetExtInfoResponse queryAssetExtInfoResponseInfo(Long assetId);

	Boolean saveUpChainFlag(String appUid, Long businessRefId);

}
